<html>
	<head>
		<meta charset="utf-8"></meta>
		<title>BLine2</title>
		<link href="./style.css" rel="stylesheet" type="text/css"/>
	</head>
	<body>
		<h1>BLine2X</h1>
		<p id="resume"></p>
		<h2>public</h2>
		<table id="public"><tr><td align="right">inline </td><td><a href="#BLine2X()">BLine2X</a>();</td></tr>
			<tr><td align="right">inline </td><td><a href="#BLine2X(T, T, T, T, T, T)">BLine2X</a>(T bx, T by, T bz, T ex, T ey, T ez);</td></tr>
			<tr><td align="right">inline </td><td><a href="#BLine2X(const BPointX<T>&, const BPointX<T>&)">BLine2X</a>(const BPointX&ltT&gt& begin, const BPointX&ltT&gt& end);</td></tr>
			<tr><td align="right">inline </td><td><a href="#BLine2X(const BLine2X&)">BLine2X</a>(const BLine2X& other);</td></tr>
			<tr><td align="right">inline </td><td><a href="#BLine2X(const BLine2X<UT>&)">BLine2X</a>(const BLine2X&ltUT&gt& other);</td></tr>
			<tr><td align="right">inline void </td><td><a href="#reset()">reset</a>();</td></tr>
			<tr><td align="right">inline void </td><td><a href="#set(T, T, T, T, T, T)">set</a>(T bx, T by, T bz, T ex, T ey, T ez);</td></tr>
			<tr><td align="right">inline void </td><td><a href="#set(const BPointX<T>&, const BPointX<T>&)">set</a>(const BPointX&ltT&gt& begin, const BPointX&ltT&gt& end);</td></tr>
			<tr><td align="right">inline void </td><td><a href="#setBegin(T, T, T)">setBegin</a>(T x, T y, T z);</td></tr>
			<tr><td align="right">inline void </td><td><a href="#setBegin(const BPointX<T>&)">setBegin</a>(const BPointX&ltT&gt& begin);</td></tr>
			<tr><td align="right">inline const BPointX<T>& </td><td><a href="#begin()">begin</a>() const;</td></tr>
			<tr><td align="right">inline void </td><td><a href="#setEnd(T, T, T)">setEnd</a>(T x, T y, T z);</td></tr>
			<tr><td align="right">inline void </td><td><a href="#setEnd(const BPointX<T>&)">setEnd</a>(const BPointX&ltT&gt& end);</td></tr>
			<tr><td align="right">inline const BPointX<T>& </td><td><a href="#end()">end</a>() const;</td></tr>
			<tr><td align="right">inline void </td><td><a href="#setDirect(T, T, T)">setDirect</a>(T x, T y, T z);</td></tr>
			<tr><td align="right">inline void </td><td><a href="#setDirect(const BPointX<T>&)">setDirect</a>(const BPointX&ltT&gt& vector);</td></tr>
			<tr><td align="right">inline const BPointX<T>& </td><td><a href="#direct()">direct</a>() const;</td></tr>
			<tr><td align="right">inline BPointX<T> </td><td><a href="#center()">center</a>() const;</td></tr>
			<tr><td align="right">inline BPointX<T> </td><td><a href="#point(float)">point</a>(float ratio) const;</td></tr>
			<tr><td align="right">inline BPointX<T> </td><td><a href="#point(double)">point</a>(double ratio) const;</td></tr>
			<tr><td align="right">inline T </td><td><a href="#ratio(const BPointX<T>&)">ratio</a>(const BPointX&ltT&gt& point) const;</td></tr>
			<tr><td align="right">inline void </td><td><a href="#setLength(T)">setLength</a>(T length);</td></tr>
			<tr><td align="right">inline T </td><td><a href="#length()">length</a>() const;</td></tr>
			<tr><td align="right">inline void </td><td><a href="#inverse()">inverse</a>();</td></tr>
			<tr><td align="right">inline void </td><td><a href="#reverse()">reverse</a>();</td></tr>
			<tr><td align="right">inline BPointX<T> </td><td><a href="#perpPoint(const BPointX<T>&)">perpPoint</a>(const BPointX&ltT&gt& point) const;</td></tr>
			<tr><td align="right">inline BPointX<T> </td><td><a href="#closestPoint(const BPointX<T>&,bool)">closestPoint</a>(const BPointX&ltT&gt& point, bool infinite = true) const;</td></tr>
			<tr><td align="right">inline BPointX<T> </td><td><a href="#closestPoint(const BLine2X<T>&,bool)">closestPoint</a>(const BLine2X&ltT&gt& line, bool infinite = true) const;</td></tr>
			<tr><td align="right">inline T </td><td><a href="#distance(const BPointX<T>&)">distance</a>(const BPointX&ltT&gt& point) const;</td></tr>
			<tr><td align="right">inline T </td><td><a href="#distance(const BLine2X<T>&)">distance</a>(const BLine2X&ltT&gt& line) const;</td></tr>
			<tr><td align="right">inline T </td><td><a href="#distance(const BTriangle2X<T>&)">distance</a>(const BTriangle2X&ltT&gt& triangle) const;</td></tr>
			<tr><td align="right">inline bool </td><td><a href="#intersect(const BPointX<T>&, const BPointX<T>&, const BPointX<T>&,bool)">intersect</a>(const BPointX&ltT&gt& a, const BPointX&ltT&gt& b, const BPointX&ltT&gt& c, bool cullback = false) const;</td></tr>
			<tr><td align="right">inline bool </td><td><a href="#intersect(const BPointX<T>&, const BPointX<T>&, const BPointX<T>&, T&,bool)">intersect</a>(const BPointX&ltT&gt& a, const BPointX&ltT&gt& b, const BPointX&ltT&gt& c, T& ratio, bool cullback = false) const;</td></tr>
			<tr><td align="right">inline bool </td><td><a href="#intersect(const BPointX<T>&, const BPointX<T>&, const BPointX<T>&, BPointX<T>&,bool)">intersect</a>(const BPointX&ltT&gt& a, const BPointX&ltT&gt& b, const BPointX&ltT&gt& c, BPointX&ltT&gt& point, bool cullback = false) const;</td></tr>
			<tr><td align="right">inline bool </td><td><a href="#intersect(const BTriangle2X<T>&,bool)">intersect</a>(const BTriangle2X&ltT&gt& triangle, bool cullback = false) const;</td></tr>
			<tr><td align="right">inline bool </td><td><a href="#intersect(const BTriangle2X<T>&, T&,bool)">intersect</a>(const BTriangle2X&ltT&gt& triangle, T& ratio, bool cullback = false) const;</td></tr>
			<tr><td align="right">inline bool </td><td><a href="#intersect(const BTriangle2X<T>&, BPointX<T>&,bool)">intersect</a>(const BTriangle2X&ltT&gt& triangle, BPointX&ltT&gt& point, bool cullback = false) const;</td></tr>
			<tr><td align="right">inline bool </td><td><a href="#intersect(const BPointX<T>&, const BPointX<T>&, const BPointX<T>&, const BPointX<T>&,bool)">intersect</a>(const BPointX&ltT&gt& a, const BPointX&ltT&gt& b, const BPointX&ltT&gt& c, const BPointX&ltT&gt& d, bool cullback = false) const;</td></tr>
			<tr><td align="right">inline bool </td><td><a href="#intersect(const BPointX<T>&, const BPointX<T>&, const BPointX<T>&, const BPointX<T>&, T&,bool)">intersect</a>(const BPointX&ltT&gt& a, const BPointX&ltT&gt& b, const BPointX&ltT&gt& c, const BPointX&ltT&gt& d, T& ratio, bool cullback = false) const;</td></tr>
			<tr><td align="right">inline bool </td><td><a href="#intersect(const BPointX<T>&, const BPointX<T>&, const BPointX<T>&, const BPointX<T>&, BPointX<T>&,bool)">intersect</a>(const BPointX&ltT&gt& a, const BPointX&ltT&gt& b, const BPointX&ltT&gt& c, const BPointX&ltT&gt& d, BPointX&ltT&gt& point, bool cullback = false) const;</td></tr>
			<tr><td align="right">inline bool </td><td><a href="#intersect(const BQuad2X<T>&,bool)">intersect</a>(const BQuad2X&ltT&gt& quad, bool cullback = false) const;</td></tr>
			<tr><td align="right">inline bool </td><td><a href="#intersect(const BQuad2X<T>&, T&,bool)">intersect</a>(const BQuad2X&ltT&gt& quad, T& ratio, bool cullback = false) const;</td></tr>
			<tr><td align="right">inline bool </td><td><a href="#intersect(const BQuad2X<T>&, BPointX<T>&,bool)">intersect</a>(const BQuad2X&ltT&gt& quad, BPointX&ltT&gt& point, bool cullback = false) const;</td></tr>
			<tr><td align="right">inline BLine2X& </td><td><a href="#operator = (const BLine2X<UT>&)">operator = </a>(const BLine2X&ltUT&gt& other);</td></tr>
			<tr><td align="right">inline BLine2X& </td><td><a href="#operator = (const BLine2X&)">operator = </a>(const BLine2X& other);</td></tr>
			<tr><td align="right">inline bool </td><td><a href="#operator == (const BLine2X&)">operator == </a>(const BLine2X& other) const;</td></tr>
			<tr><td align="right">inline bool </td><td><a href="#operator != (const BLine2X&)">operator != </a>(const BLine2X& other) const;</td></tr>
			<tr><td align="right">inline BLine2X </td><td><a href="#operator + (const BPointX<T>&)">operator + </a>(const BPointX&ltT&gt& offset) const;</td></tr>
			<tr><td align="right">inline void </td><td><a href="#operator += (const BPointX<T>&)">operator += </a>(const BPointX&ltT&gt& offset);</td></tr>
			<tr><td align="right">inline BLine2X </td><td><a href="#operator - (const BPointX<T>&)">operator - </a>(const BPointX&ltT&gt& offset) const;</td></tr>
			<tr><td align="right">inline void </td><td><a href="#operator -= (const BPointX<T>&)">operator -= </a>(const BPointX&ltT&gt& offset);</td></tr>
			<tr><td align="right">inline BLine2X </td><td><a href="#operator * (const BMatrixX<T>&)">operator * </a>(const BMatrixX&ltT&gt& matrix) const;</td></tr>
			<tr><td align="right">inline void </td><td><a href="#operator *= (const BMatrixX<T>&)">operator *= </a>(const BMatrixX&ltT&gt& matrix);</td></tr>
		</table>
		<div id="desc">
			<h2>详细介绍</h2>
		</div>
		<h2 id="docs">Member Documentation</h2>
		<div id="BLine2X()">
			<h3>inline BLine2X();</h3>
		</div>
		<div id="BLine2X(T, T, T, T, T, T)">
			<h3>inline BLine2X(T bx, T by, T bz, T ex, T ey, T ez);</h3>
		</div>
		<div id="BLine2X(const BPointX<T>&, const BPointX<T>&)">
			<h3>inline BLine2X(const BPointX&ltT&gt& begin, const BPointX&ltT&gt& end);</h3>
		</div>
		<div id="BLine2X(const BLine2X&)">
			<h3>inline BLine2X(const BLine2X& other);</h3>
		</div>
		<div id="BLine2X(const BLine2X<UT>&)">
			<h3>inline BLine2X(const BLine2X&ltUT&gt& other);</h3>
		</div>
		<div id="reset()">
			<h3>inline void reset();</h3>
		</div>
		<div id="set(T, T, T, T, T, T)">
			<h3>inline void set(T bx, T by, T bz, T ex, T ey, T ez);</h3>
		</div>
		<div id="set(const BPointX<T>&, const BPointX<T>&)">
			<h3>inline void set(const BPointX&ltT&gt& begin, const BPointX&ltT&gt& end);</h3>
		</div>
		<div id="setBegin(T, T, T)">
			<h3>inline void setBegin(T x, T y, T z);</h3>
		</div>
		<div id="setBegin(const BPointX<T>&)">
			<h3>inline void setBegin(const BPointX&ltT&gt& begin);</h3>
		</div>
		<div id="begin()">
			<h3>inline const BPointX<T>& begin() const;</h3>
		</div>
		<div id="setEnd(T, T, T)">
			<h3>inline void setEnd(T x, T y, T z);</h3>
		</div>
		<div id="setEnd(const BPointX<T>&)">
			<h3>inline void setEnd(const BPointX&ltT&gt& end);</h3>
		</div>
		<div id="end()">
			<h3>inline const BPointX<T>& end() const;</h3>
		</div>
		<div id="setDirect(T, T, T)">
			<h3>inline void setDirect(T x, T y, T z);</h3>
		</div>
		<div id="setDirect(const BPointX<T>&)">
			<h3>inline void setDirect(const BPointX&ltT&gt& vector);</h3>
		</div>
		<div id="direct()">
			<h3>inline const BPointX<T>& direct() const;</h3>
		</div>
		<div id="center()">
			<h3>inline BPointX<T> center() const;</h3>
		</div>
		<div id="point(float)">
			<h3>inline BPointX<T> point(float ratio) const;</h3>
		</div>
		<div id="point(double)">
			<h3>inline BPointX<T> point(double ratio) const;</h3>
		</div>
		<div id="ratio(const BPointX<T>&)">
			<h3>inline T ratio(const BPointX&ltT&gt& point) const;</h3>
		</div>
		<div id="setLength(T)">
			<h3>inline void setLength(T length);</h3>
		</div>
		<div id="length()">
			<h3>inline T length() const;</h3>
		</div>
		<div id="inverse()">
			<h3>inline void inverse();</h3>
		</div>
		<div id="reverse()">
			<h3>inline void reverse();</h3>
		</div>
		<div id="perpPoint(const BPointX<T>&)">
			<h3>inline BPointX<T> perpPoint(const BPointX&ltT&gt& point) const;</h3>
		</div>
		<div id="closestPoint(const BPointX<T>&,bool)">
			<h3>inline BPointX<T> closestPoint(const BPointX&ltT&gt& point, bool infinite = true) const;</h3>
		</div>
		<div id="closestPoint(const BLine2X<T>&,bool)">
			<h3>inline BPointX<T> closestPoint(const BLine2X&ltT&gt& line, bool infinite = true) const;</h3>
		</div>
		<div id="distance(const BPointX<T>&)">
			<h3>inline T distance(const BPointX&ltT&gt& point) const;</h3>
		</div>
		<div id="distance(const BLine2X<T>&)">
			<h3>inline T distance(const BLine2X&ltT&gt& line) const;</h3>
		</div>
		<div id="distance(const BTriangle2X<T>&)">
			<h3>inline T distance(const BTriangle2X&ltT&gt& triangle) const;</h3>
		</div>
		<div id="intersect(const BPointX<T>&, const BPointX<T>&, const BPointX<T>&,bool)">
			<h3>inline bool intersect(const BPointX&ltT&gt& a, const BPointX&ltT&gt& b, const BPointX&ltT&gt& c, bool cullback = false) const;</h3>
		</div>
		<div id="intersect(const BPointX<T>&, const BPointX<T>&, const BPointX<T>&, T&,bool)">
			<h3>inline bool intersect(const BPointX&ltT&gt& a, const BPointX&ltT&gt& b, const BPointX&ltT&gt& c, T& ratio, bool cullback = false) const;</h3>
		</div>
		<div id="intersect(const BPointX<T>&, const BPointX<T>&, const BPointX<T>&, BPointX<T>&,bool)">
			<h3>inline bool intersect(const BPointX&ltT&gt& a, const BPointX&ltT&gt& b, const BPointX&ltT&gt& c, BPointX&ltT&gt& point, bool cullback = false) const;</h3>
		</div>
		<div id="intersect(const BTriangle2X<T>&,bool)">
			<h3>inline bool intersect(const BTriangle2X&ltT&gt& triangle, bool cullback = false) const;</h3>
		</div>
		<div id="intersect(const BTriangle2X<T>&, T&,bool)">
			<h3>inline bool intersect(const BTriangle2X&ltT&gt& triangle, T& ratio, bool cullback = false) const;</h3>
		</div>
		<div id="intersect(const BTriangle2X<T>&, BPointX<T>&,bool)">
			<h3>inline bool intersect(const BTriangle2X&ltT&gt& triangle, BPointX&ltT&gt& point, bool cullback = false) const;</h3>
		</div>
		<div id="intersect(const BPointX<T>&, const BPointX<T>&, const BPointX<T>&, const BPointX<T>&,bool)">
			<h3>inline bool intersect(const BPointX&ltT&gt& a, const BPointX&ltT&gt& b, const BPointX&ltT&gt& c, const BPointX&ltT&gt& d, bool cullback = false) const;</h3>
		</div>
		<div id="intersect(const BPointX<T>&, const BPointX<T>&, const BPointX<T>&, const BPointX<T>&, T&,bool)">
			<h3>inline bool intersect(const BPointX&ltT&gt& a, const BPointX&ltT&gt& b, const BPointX&ltT&gt& c, const BPointX&ltT&gt& d, T& ratio, bool cullback = false) const;</h3>
		</div>
		<div id="intersect(const BPointX<T>&, const BPointX<T>&, const BPointX<T>&, const BPointX<T>&, BPointX<T>&,bool)">
			<h3>inline bool intersect(const BPointX&ltT&gt& a, const BPointX&ltT&gt& b, const BPointX&ltT&gt& c, const BPointX&ltT&gt& d, BPointX&ltT&gt& point, bool cullback = false) const;</h3>
		</div>
		<div id="intersect(const BQuad2X<T>&,bool)">
			<h3>inline bool intersect(const BQuad2X&ltT&gt& quad, bool cullback = false) const;</h3>
		</div>
		<div id="intersect(const BQuad2X<T>&, T&,bool)">
			<h3>inline bool intersect(const BQuad2X&ltT&gt& quad, T& ratio, bool cullback = false) const;</h3>
		</div>
		<div id="intersect(const BQuad2X<T>&, BPointX<T>&,bool)">
			<h3>inline bool intersect(const BQuad2X&ltT&gt& quad, BPointX&ltT&gt& point, bool cullback = false) const;</h3>
		</div>
		<div id="operator = (const BLine2X<UT>&)">
			<h3>inline BLine2X& operator = (const BLine2X&ltUT&gt& other);</h3>
		</div>
		<div id="operator = (const BLine2X&)">
			<h3>inline BLine2X& operator = (const BLine2X& other);</h3>
		</div>
		<div id="operator == (const BLine2X&)">
			<h3>inline bool operator == (const BLine2X& other) const;</h3>
		</div>
		<div id="operator != (const BLine2X&)">
			<h3>inline bool operator != (const BLine2X& other) const;</h3>
		</div>
		<div id="operator + (const BPointX<T>&)">
			<h3>inline BLine2X operator + (const BPointX&ltT&gt& offset) const;</h3>
		</div>
		<div id="operator += (const BPointX<T>&)">
			<h3>inline void operator += (const BPointX&ltT&gt& offset);</h3>
		</div>
		<div id="operator - (const BPointX<T>&)">
			<h3>inline BLine2X operator - (const BPointX&ltT&gt& offset) const;</h3>
		</div>
		<div id="operator -= (const BPointX<T>&)">
			<h3>inline void operator -= (const BPointX&ltT&gt& offset);</h3>
		</div>
		<div id="operator * (const BMatrixX<T>&)">
			<h3>inline BLine2X operator * (const BMatrixX&ltT&gt& matrix) const;</h3>
		</div>
		<div id="operator *= (const BMatrixX<T>&)">
			<h3>inline void operator *= (const BMatrixX&ltT&gt& matrix);</h3>
		</div>
	</body>
</html>